Frontend Forever App
We have a mobile app for you to download and use. And you can unlock many features in the app.
Get it now
Intall Later
Run
HTML
CSS
Javascript
Output
Document
Links
·
·
@charset "UTF-8"; @import url(https://fonts.googleapis.com/css?family=Nunito+Sans:300,400,600,700,800); *, :after, :before { box-sizing: border-box; padding: 0; margin: 0; } :root { --red-rgb: 248 113 113; --blue-rgb: 56 189 248; --green-rgb: 74 222 128; --yellow-rgb: 253 224 71; --background-rgb: 0 0 0; } body { height: 100vh; width: 100%; display: flex; align-items: center; justify-content: center; background: rgb(var(--background-rgb)); overflow: hidden; perspective: 2000px; } * { box-sizing: border-box; margin: 0; padding: 0; } #container { width: 140rem; aspect-ratio: 1; display: grid; grid-template-rows: repeat(40, 1fr); grid-template-columns: repeat(40, 1fr); position: absolute; transform: rotateX(50deg) rotateY(-5deg) rotateZ(20deg) scale(1.25); } #container:after, #container:before { content: ""; position: absolute; inset: 0px; pointer-events: none; } #container:before { z-index: 2; background-image: url("https://assets.codepen.io/1468070/plus-pattern-center.png"); background-size: 5%; background-repeat: repeat; opacity: 0.25; } #container:after { z-index: 3; background: radial-gradient(circle, transparent 25%, rgb(var(--background-rgb)) 80%); } .tile { border: 1px solid rgb(255 255 255 / 25%); transition: background-color 1500ms; } .tile:hover { transition-duration: 0ms; } .tile:nth-child(4n):hover { background-color: rgb(var(--red-rgb)); } .tile:nth-child(4n + 1):hover { background-color: rgb(var(--blue-rgb)); } .tile:nth-child(4n + 2):hover { background-color: rgb(var(--green-rgb)); } .tile:nth-child(4n + 3):hover { background-color: rgb(var(--yellow-rgb)); } .tile:nth-child(7n):hover { background-color: rgb(var(--blue-rgb)); } .tile:nth-child(7n + 3):hover { background-color: rgb(var(--green-rgb)); } .tile:nth-child(7n + 5):hover { background-color: rgb(var(--yellow-rgb)); } .tile:nth-child(7n + 6):hover { background-color: rgb(var(--red-rgb)); } .tile:nth-child(11n + 1):hover { background-color: rgb(var(--red-rgb)); } .tile:nth-child(11n + 4):hover { background-color: rgb(var(--blue-rgb)); } .tile:nth-child(11n + 7):hover { background-color: rgb(var(--green-rgb)); } .tile:nth-child(11n + 10):hover { background-color: rgb(var(--yellow-rgb)); } /* -- Links -- */ #links { display: flex; flex-direction: column; gap: 0.5rem; position: absolute; bottom: 0px; left: 0px; z-index: 100; padding: 1rem; } .meta-link { display: flex; align-items: center; gap: 0.5rem; } .meta-link > :is(span, a) { font-family: "Rubik", sans-serif; font-size: 1.25rem; color: white; } .meta-link > .label { text-align: right; } .meta-link > a { text-decoration: none; outline: none; } .meta-link > a.source { color: rgb(94, 106, 210); } .meta-link > a:is(:hover, :focus) > i { color: white; } .meta-link > a.youtube { color: rgb(239, 83, 80); } .meta-link > a.youtube > i { padding-top: 0.2rem; } .meta-link > a > i { height: 1rem; line-height: 1rem; }
console.log("Event Fired") const container = document.querySelector("#container"), tile = document.querySelector(".tile"); for(let i = 0; i < 1599; i++) { container.appendChild(tile.cloneNode()); }